#字符串常用方法
a = "helloword"
print("a:",a)
#长度
print(""""HelloWord".len(a):""",len(a))

#次数
print(""""HelloWord".count("l",0,3)):""",a.count("l",0,3))

#从左开始，返回索引
print(""""HelloWord".index("l",3,-1):""",a.index("l",3,-1))

#从右开始，返回索引
print(""""HelloWord".rindex("l",0,9):""",a.rindex("l",0,9))

#从左开始,存在返回索引，不存返回-1
print(""""HelloWord".find("ll"):""",a.find("ll"))

#从右开始,存在返回索引，不存返回-1
print(""""HelloWord".rfind("lll"):""",a.rfind("lll"))

#更换字符
print(""""HelloWord".replace("l","2",1):""",a.replace("l","2",1))

#检查字符串是否是以 h 开头, 返回True/Flase
print(""""HelloWord".startswith("h"):""",a.startswith("h"))

#检查字符串是否是以 h 结尾, 返回True/Flase
print(""""HelloWord".endswith("h"):""",a.endswith("h"))

#至少有一个字符并且所有字符都是字母，返回True/Flase
print(""""HelloWord".isalpha():""",a.isalpha())

# 只包含数字，返回True/Flase
print(""""HelloWord".isdigit():""",a.isdigit())

# 至少有一个字符并且所有字符都是字母或数字，返回True/Flase
print(""""HelloWord".isalnum():""",a.isalnum())

# 只包含空格，返回True/Flase
print(""""HelloWord".isspace():""",a.isspace())

# 至少一个区分大小写的字符，并且所有这些(区分大小写的)字符都是大写，返回True/Flase
print(""""AA!CC".isupper():""","AA!CC".isupper())

#至少一个区分大小写的字符，并且所有这些(区分大小写的)字符都是小写，返回True/Flase
print(""""AA!CC".islower():""","AA!CC".islower())

#所有单词首字符是大写，返回True/Flase
print(""""Acc".istitle():""","Acc".istitle())

#把字符串的第一个字符大写，并且输出
print(""""user".capitalize():""","user".capitalize())

#所有单词都是以大写开始，其余字母均为小写，并且输出
print(""""userA".title():""","userA".title())

# 小写字母为大写，并且输出
print(""""user".upper():""","user".upper())

#大写字母为小写，并且输出
print(""""USER".lower():""","USER".lower())

#删除 string 左右两侧的空白字符, 如果指定 chars 参数，则删除左右两侧指定的字符
print(""""r user r".strip("r"):""","r user r".strip("r"))

#删除 string 左边的空白字符, 如果指定 chars 参数，则删除左两侧指定的字符
print("""" user".lstrip():"""," user".lstrip())

#删除 string 左边的空白字符, 如果指定 chars 参数，则删除右两侧指定的字符
print(""""user".rstrip("r"):""","user".rstrip("r"))

#以 sep 为分隔符分割 string ，如果指定 maxsplit 参数，则仅分割 maxsplit 次
print("""aabbaabbaa".split("b",1):""","aabbaabbaa".split("bb",1))

# 使用换行符\n分割 string，如果指定 keepends(True) 参数，则结果中会保留\n符号
print(""""aa\\nbb".splitlines(1):""","aa\nbb".splitlines(True))

#从 sep 出现的第一个位置起,把 string 分成一个 3 元素的元组 (string_pre_sep,sep,string_post_sep)， 如果 string 中不包含 sep 则 string_pre_str == string，其余元素为空字符串
print(""""My name is XianMo".partition("is"):""","My name is XianMo".partition("is"))

#从右向左 sep 出现的第一个位置起,把 string 分成一个 3 元素的元组 (string_pre_sep,sep,string_post_sep)，如果 string 中不包含 sep 则 string_post_str == string，其余元素为空字符串
print(""""My name is XianMo".rpartition("iss"):""","My name is XianMo".rpartition("iss"))
print(""""Hello" + "XianMo":""","Hello" + "XianMo")
print("""- * "3":""","-" * 3)

# 使用 string 连接可迭代对象中的所有元素，可迭代对象参数中的所有元素必须是字符串
print(""""->".join(("a","b","c")):""","->".join(("a","b","c")))

#使用 encoding 指定的字符集，对 string 进行编码，转换成二进制字符串
print(""""你好".encode("gbk"):""","你好".encode("gbk"))

s1 = b'\xc4\xe3\xba\xc3'
#使用 encoding 指定的字符集，对 string 进行解码，转换成字符串对象， string 必须是二进制字符串
print("""b'\\xc4\\xe3\\xba\\xc3'.decode("gbk"):""",s1.decode("gbk"))

#对字符串按指定的范围进行截取，得到一个子字符串，指定范围时，起始下标必须小于结束下标，且子字符串不包含结束下标
print(""""123456789"[0:7:2]:""","123456789"[0:7:2])